﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Proggy.Web.Cms.Repositories.ContentModel;
using Proggy.Web.Cms.ContentModel;

namespace Proggy.Web.Cms.Repositories.Published
{
    /// <summary>
    /// PUblished content repo
    /// </summary>
    public interface IPublishedContentRepository
    {
        IQueryable<IContentModel> PublishedContent { get; set; }
        IQueryable<TContentModel> GetTypedPublishedContent<TContentModel>(bool includeSubClasses);
        IContentModel GetAbstractContentSingleFromId(int nodeId);
        TContentModel GetTypedContentSingleFromId<TContentModel>(int id);
        IContentModelConverter ContentModelConverter { get; }
        IQueryable<TPropertyTypeType> GetAllPropertyValues<TPropertyTypeType>();
        IContentModel GetRootNode();
    }
}
